package br.eng.eliseu.gwt.gestaoWeb.server;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import br.eng.eliseu.gwt.gestaoWeb.server.atualizacao.AtualizaBancoDadosCommand;

public class InitServerListener implements ServletContextListener  {

//	@Inject EntityManager em;
/*	
	private List<UsuarioOld> listUsuario = null;
	private List<UsuarioAcesso> listAcesso = null;
	private static final String[] usuarios = new String[] { "a", "root", "Joao" };
	private static final String[] senhas = new String[] { "a", "root", "Joao" };
*/	
	
	public void contextDestroyed(ServletContextEvent arg0) {}

	public void contextInitialized(ServletContextEvent contEvent) {
//		Injector in = (Injector) contEvent.getServletContext().getAttribute("injector");
//		em = in.getInstance(EntityManager.class);
		/**
		 * Fiz esta parte so para simular um Banco de dados com alguns registros de usuarios
		 * que poderao ser utilizados mais tarde como teste para o sistema
		 */
		
		// --- Crio alguns usuarios
//		listUsuario = new ArrayList<UsuarioOld>();
//		listAcesso = new ArrayList<UsuarioAcesso>();
//		for (int i = 0; i < usuarios.length; ++i) {
//			UsuarioOld u = new UsuarioOld(i, usuarios[i], senhas[i]);
//			listUsuario.add(u);
//			
//			// --- Carrego algumas telas para os usuarios
//			int j = 0;
//			for (final PresenterMenuEnum p : PresenterMenuEnum.values()) {
//				if ( p!=null && p.getRequerAutenticacao()){
//					UsuarioAcesso a = new UsuarioAcesso(i*100+j, u, p, true, true, false, false);
//					listAcesso.add(a);
//					
//				}
//			}
//			
//		}
		
//		contEvent.getServletContext().setAttribute("listUsuarios", listUsuario);
//		contEvent.getServletContext().setAttribute("listUsuariosAcesso", listAcesso);
		
		// --- Pegar variavel
//		List<Usuario> lista = (List<Usuario>) arg0.getServletContext().getAttribute("listUsuarios");

		
		
		AtualizaBancoDadosCommand commandBancoDados = new AtualizaBancoDadosCommand();
		Thread t = new Thread(commandBancoDados);
		t.start();

/*		
		Query q;
		q = em.createNamedQuery("usuario.porNome");
		q.setParameter("nome", new String("a"));
		Usuario usr = null;
		@SuppressWarnings("unchecked")
		List<Usuario> lista = q.getResultList();
		if (lista.size()>0){
			usr = lista.get(0);	
		}
		System.out.println("Usuario: "+usr.getNome());
*/		
	}


}
